John Holmes was an Anglo-Indian mercenary in Punjab. He served in the Sikh army during the final years of Punjab's independence, and rose to the rank of Colonel. He served with the Khalsa, the Sikh Army, during the First Anglo-Sikh War.
John Holmes was an Anglo-Indian who had risen from a trumpeter to colonel. He joined Bengal Horse Artillery and in September 1829 resigned his post and moved to Punjab in search of a better future. He joined Maharaja Ranjit Singh's army. It is suspected that he simultaneously worked for Ranjit Singh and spied for the British. He took part in the battle of Peshawar (1834) and the Battle of Jamrud (1837). He was also appointed Revenue Officer of Gujrat for two years (1835–36). While most of the European Officers were discharged from the Sikh Army after the first Anglo-Sikh war, John Holmes was retained in service as a reward for supplying secret information to the Ludhiana Political Agency. He was posted at Bannu where, in October 1848, the Sikh troops under his command mutinied and killed him for his treasonable conduct.